package Demo.ClassPath.Impl;

import Demo.ClassPath.Read;

import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.stream.Collectors;

/**
 * @author smilecode
 * 按正则读取所有*号的文件
 */
public class StarRead extends CompositeRead implements Read {

    public StarRead(String fileStrings) {
        super(toPathList(fileStrings));
    }
    private static String toPathList(String StarPath) {
        String baseDir = StarPath.replace("*", ""); // remove *
        try {
            return Files.walk(Paths.get(baseDir))
                    .filter(Files::isRegularFile)
                    .map(Path::toString)
                    .filter(p -> p.endsWith(".jar") || p.endsWith(".JAR"))
                    .collect(Collectors.joining(File.pathSeparator));
            //将该目录以下的所有文件全部读取后过滤掉目录，且只保留jar或JAR结尾的文件后全部生成一个集合导入CompositeRead类
        } catch (IOException e) {
            System.out.println("我执行了"+baseDir);
            return "";
        }
    }
}
